/**
 * Copyright &copy; 2012-2016 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.msk.wlhy.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.msk.common.utils.DictUtils;
import com.msk.common.utils.StringUtils;
import com.msk.sys.domain.DataEntity;
import com.msk.sys.domain.Office;
import com.msk.sys.domain.User;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.Pattern;
import java.util.Date;

/**
 * <p>[]</p>
 * <p>作者：zkp</p>
 * <p>邮箱：zkp@xiangyou.com</p>
 * <p>创建时间： 2018-06-14 </p>
 * <p>类说明：驾驶员档案Entity </p>
 * <p>修改记录：</p>
 */
public class HtDriverFile extends DataEntity<HtDriverFile> {

	private static final long serialVersionUID = 1L;
	private Office company;
	private Office office;
	private String name;
	private Integer age;
	private String sex;
	private String idNumber;
    @Pattern(regexp = "^(((13[0-9]{1})|(15[0-9]{1})|(14[0-9]{1})|(17[0-9]{1})|(18[0-9]{1})|(19[0-9]{1}))+\\d{8})$" ,message = "手机号格式不正确")
	private String phone;
   	private String openId;
	private String drivingLicenseType;
	private String driverLicenseNumber;
	private String driverLicenseCode;
	private Integer drivingAge;
	private User user;
	private String attstr01;
	private String attstr02;
	private String attstr03;
	private String attstr04;

	private Date attdate01;
	private Date attdate02;
	private String sexAlias;		// 转换后的性别

	private String drivingLicenseTypeAlias;		// 转换后的驾照类型  准驾车型
	private String delFlagAlias;		// 转换后的del_flag
	private String transportListId;
	private String licensePic;//驾驶证图片
	private String isPassCheck; //是否通过审核  ，司机自己注册的为未审核的 需要审核，后台管理人员添加的不要审核 0 未审核 1 通过审核 3已注册未进行认证
	private String isPassCheckAlias;

	private String factSupplierName; //实际承运人名称

	private User auditUser;
	private String auditContent;

	private String officeCode;//部门编码

	private String bankCardNo;//银行卡
	private String contactsPhone;//联系方式

	public String getContactsPhone() {
		return contactsPhone;
	}

	public void setContactsPhone(String contactsPhone) {
		this.contactsPhone = contactsPhone;
	}

	private String roadTransportCertificateNo; //道路运输资格证号

	private String 	roadTransportCertificateImg;// 道路运输资格证

	private String 	idCardImg;

	private String 	idCardImgBack;
/* by wlxiang 20200823*/
	private String transportNumber;// 道路运输许可证

	private String carLicensePic; // 车辆行驶证证图片
	private String baseOpenAccountName;//开户行名称
	private String baseOpenAccountType;//开户行类别
	private String baseOpenAddress;//开户行地址
	private String userId;//用户Id

    //车辆相关----------start
	private String carId; //车辆Id
    private String carNumber;//车牌号
	private String carType;
	private String carTypeAlias;
    private Double carLoad;//载重
    private String transportPic;// 道路运输许可证图片
    private String drivingLicensePic;//车辆行驶证图片
    private String drivingLicensePicCopy;//车辆行驶证副本图片
	private String belongId; //所属方Id

	private String periodStartDate;
	private String periodEndDate;
	private String registerDate;
	private String issueDate;
	private String vehicleAreaCode;
	private String vehicleAreaName;//车籍地名称
	private String allUser;
	private String useCharacter;
	private String vin;
	private HtCarFiles htCarFiles;
	/**
	 *start car_weight_type
	 * add by wlx 2020/12/02
	 */
	private String carWeightTypeAlias;
	private String carWeightType;
	//road_transport_biz_license_no道路运输经营许可证号
	private String roadTransportBizLicenseNo;
	//、road_transport_biz_license_img道路运输经营许可证
	private String roadTransportBizLicenseImg;
	private String carWeight;
	private String carLength;
	private String carColor;
	private String colorAlias;
	private String vehicleEnergyType;
	private String vehicleEnergyTypeAlias;
	/** end  */
    //车辆相关----------end

	//按照时间搜索
	private String createDate1;
	private String createDate2;

	private Date auditTime;//审核时间

	private String auditTime0;
	private String auditTime1;

	private String vehicleClass;//准驾车型

	private String issuingOrganizations;//驾驶证发证机关

	private String validPeriodFrom;//驾驶证有效期自

	private String validPeriodTo;//驾驶证有效期至
	private Date messageSendingDateTime;//发送日期时间
	private String messageFunctionCode;
	private String errorMsg;

	//增加司机状态
	private String driverStatus;//

	public HtCarFiles getHtCarFiles() {
		return htCarFiles;
	}

	public void setHtCarFiles(HtCarFiles htCarFiles) {
		this.htCarFiles = htCarFiles;
	}

	public void setCompany(Office company) {
		this.company = company;
	}

	private String driverStatusAlias;

	/**
	 * 部分导出使用
	 */
	private String[] idArray;

	public String getVehicleAreaName() {
		return vehicleAreaName;
	}

	public void setVehicleAreaName(String vehicleAreaName) {
		this.vehicleAreaName = vehicleAreaName;
	}

	public String getVehicleEnergyTypeAlias() {
		return vehicleEnergyTypeAlias;
	}

	public void setVehicleEnergyTypeAlias(String vehicleEnergyTypeAlias) {
		this.vehicleEnergyTypeAlias = vehicleEnergyTypeAlias;
	}

	public String getCarType() {
		return carType;
	}

	public void setCarType(String carType) {
		this.carType = carType;
	}

	public String getCarTypeAlias() {
		return carTypeAlias;
	}

	public void setCarTypeAlias(String carTypeAlias) {
		this.carTypeAlias = carTypeAlias;
	}

	public HtDriverFile() {
		super();
	}

	public HtDriverFile(String id){
		super(id);
	}

	public Office getCompany() {
		return company;
	}

	public Office getOffice() {
		return office;
	}

	public void setOffice(Office office) {
		this.office = office;
	}

	@Length(min=0, max=100, message="客户名称长度必须介于 0 和 100 之间")
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}

	@Length(min=0, max=10, message="性别长度必须介于 0 和 10 之间")
	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	@Length(min=0, max=30, message="身份证号长度必须介于 0 和 30 之间")
	public String getIdNumber() {
		return idNumber;
	}

	public void setIdNumber(String idNumber) {
		this.idNumber = idNumber;
	}

	@Length(min=0, max=20, message="电话长度必须介于 0 和 20 之间")
	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

	@Length(min=0, max=10, message="驾照类型长度必须介于 0 和 10 之间")
	public String getDrivingLicenseType() {
		return drivingLicenseType;
	}

	public void setDrivingLicenseType(String drivingLicenseType) {
		this.drivingLicenseType = drivingLicenseType;
	}

	@Length(min=0, max=30, message="驾照号码长度必须介于 0 和 30 之间")
	public String getDriverLicenseNumber() {
		return driverLicenseNumber;
	}

	public void setDriverLicenseNumber(String driverLicenseNumber) {
		this.driverLicenseNumber = driverLicenseNumber;
	}

	@Length(min=0, max=30, message="驾驶证编码长度必须介于 0 和 30 之间")
	public String getDriverLicenseCode() {
		return driverLicenseCode;
	}

	public void setDriverLicenseCode(String driverLicenseCode) {
		this.driverLicenseCode = driverLicenseCode;
	}

	public Integer getDrivingAge() {
		return drivingAge;
	}

	public void setDrivingAge(Integer drivingAge) {
		this.drivingAge = drivingAge;
	}


	public User getUser() {
		return user;
	}


	public void setUser(User user) {
		this.user = user;
	}

	@Length(min=0, max=200, message="attstr01长度必须介于 0 和 200 之间")
	public String getAttstr01() {
		return attstr01;
	}

	public void setAttstr01(String attstr01) {
		this.attstr01 = attstr01;
	}

	@Length(min=0, max=200, message="attstr02长度必须介于 0 和 200 之间")
	public String getAttstr02() {
		return attstr02;
	}

	public void setAttstr02(String attstr02) {
		this.attstr02 = attstr02;
	}

	@Length(min=0, max=200, message="attstr03长度必须介于 0 和 200 之间")
	public String getAttstr03() {
		return attstr03;
	}

	public void setAttstr03(String attstr03) {
		this.attstr03 = attstr03;
	}

	@Length(min=0, max=200, message="attstr04长度必须介于 0 和 200 之间")
	public String getAttstr04() {
		return attstr04;
	}

	public void setAttstr04(String attstr04) {
		this.attstr04 = attstr04;
	}

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getAttdate01() {
		return attdate01;
	}

	public void setAttdate01(Date attdate01) {
		this.attdate01 = attdate01;
	}

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getAttdate02() {
		return attdate02;
	}

	public void setAttdate02(Date attdate02) {
		this.attdate02 = attdate02;
	}



	public String getOpenId() {
		return openId;
	}


	public void setOpenId(String openId) {
		this.openId = openId;
	}

	public String getSexAlias() {
		if(StringUtils.isBlank(sexAlias)){
			return DictUtils.getDictLabel(sex, "sex", "");
		}
		return sexAlias;
	}

	public void setSexAlias(String sexAlias) {
		this.sexAlias = sexAlias;
	}
	public String getDrivingLicenseTypeAlias() {
		if(StringUtils.isBlank(drivingLicenseTypeAlias)){
			return DictUtils.getDictLabel(drivingLicenseType, "ht_driving_license_type", "");
		}
		return drivingLicenseTypeAlias;
	}

	public void setDrivingLicenseTypeAlias(String drivingLicenseTypeAlias) {
		this.drivingLicenseTypeAlias = drivingLicenseTypeAlias;
	}
	public String getDelFlagAlias() {
		if(StringUtils.isBlank(delFlagAlias)){
			return DictUtils.getDictLabel(delFlag, "del_flag", "");
		}
		return delFlagAlias;
	}

	public void setDelFlagAlias(String delFlagAlias) {
		this.delFlagAlias = delFlagAlias;
	}


	public String getTransportListId() {
		return transportListId;
	}


	public void setTransportListId(String transportListId) {
		this.transportListId = transportListId;
	}

	public String getLogTitle() {
		return "驾驶员档案";
	}

	public String getLicensePic() {
		return licensePic;
	}

	public void setLicensePic(String licensePic) {
		this.licensePic = licensePic;
	}

	public String getIsPassCheck() {
		return isPassCheck;
	}

	public void setIsPassCheck(String isPassCheck) {
		this.isPassCheck = isPassCheck;
	}

	public User getAuditUser() {
		return auditUser;
	}

	public void setAuditUser(User auditUser) {
		this.auditUser = auditUser;
	}

	public String getAuditContent() {
		return auditContent;
	}

	public void setAuditContent(String auditContent) {
		this.auditContent = auditContent;
	}

	public String getOfficeCode() {
		return officeCode;
	}

	public void setOfficeCode(String officeCode) {
		this.officeCode = officeCode;
	}

	public String getIsPassCheckAlias() {
		if(StringUtils.isBlank(isPassCheckAlias)){
			return DictUtils.getDictLabel(isPassCheck, "is_pass_check", "");
		}
		return isPassCheckAlias;
	}

	public void setIsPassCheckAlias(String isPassCheckAlias) {
		this.isPassCheckAlias = isPassCheckAlias;
	}

	public String getFactSupplierName() {
		return factSupplierName;
	}

	public void setFactSupplierName(String factSupplierName) {
		this.factSupplierName = factSupplierName;
	}

	public String getBankCardNo() {
		return bankCardNo;
	}

	public void setBankCardNo(String bankCardNo) {
		this.bankCardNo = bankCardNo;
	}

	public String getRoadTransportCertificateNo() {
        return roadTransportCertificateNo;
    }

    public void setRoadTransportCertificateNo(String roadTransportCertificateNo) {
        this.roadTransportCertificateNo = roadTransportCertificateNo;
    }

	public String getRoadTransportCertificateImg() {
		return roadTransportCertificateImg;
	}

	public void setRoadTransportCertificateImg(String roadTransportCertificateImg) {
		this.roadTransportCertificateImg = roadTransportCertificateImg;
	}

	public String getIdCardImg() {
		return idCardImg;
	}

	public void setIdCardImg(String idCardImg) {
		this.idCardImg = idCardImg;
	}

	public String getIdCardImgBack() {
		return idCardImgBack;
	}

	public void setIdCardImgBack(String idCardImgBack) {
		this.idCardImgBack = idCardImgBack;
	}

	public String getTransportNumber() {
		return transportNumber;
	}

	public void setTransportNumber(String transportNumber) {
		this.transportNumber = transportNumber;
	}

	public String getCarLicensePic() {
		return carLicensePic;
	}

	public void setCarLicensePic(String carLicensePic) {
		this.carLicensePic = carLicensePic;
	}

	public String getBaseOpenAccountName() {
		return baseOpenAccountName;
	}

	public void setBaseOpenAccountName(String baseOpenAccountName) {
		this.baseOpenAccountName = baseOpenAccountName;
	}

	public String getBaseOpenAccountType() {
		return baseOpenAccountType;
	}

	public void setBaseOpenAccountType(String baseOpenAccountType) {
		this.baseOpenAccountType = baseOpenAccountType;
	}

	public String getBaseOpenAddress() {
		return baseOpenAddress;
	}

	public void setBaseOpenAddress(String baseOpenAddress) {
		this.baseOpenAddress = baseOpenAddress;
	}

	public String getUserId() {
		return userId;
	}

	public void setUserId(String userId) {
		this.userId = userId;
	}

	public String getCarId() {
		return carId;
	}

	public void setCarId(String carId) {
		this.carId = carId;
	}

	public String getCarNumber() {
        return carNumber;
    }

    public void setCarNumber(String carNumber) {
        this.carNumber = carNumber;
    }

    public Double getCarLoad() {
        return carLoad;
    }

    public void setCarLoad(Double carLoad) {
        this.carLoad = carLoad;
    }

    public String getTransportPic() {
        return transportPic;
    }

    public void setTransportPic(String transportPic) {
        this.transportPic = transportPic;
    }

    public String getDrivingLicensePic() {
        return drivingLicensePic;
    }

    public void setDrivingLicensePic(String drivingLicensePic) {
        this.drivingLicensePic = drivingLicensePic;
    }

    public String getDrivingLicensePicCopy() {
        return drivingLicensePicCopy;
    }

    public void setDrivingLicensePicCopy(String drivingLicensePicCopy) {
        this.drivingLicensePicCopy = drivingLicensePicCopy;
    }

	public String getBelongId() {
		return belongId;
	}

	public void setBelongId(String belongId) {
		this.belongId = belongId;
	}

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getAuditTime() {
		return auditTime;
	}

	public void setAuditTime(Date auditTime) {
		this.auditTime = auditTime;
	}

	public String getCreateDate1() {
		return createDate1;
	}

	public void setCreateDate1(String createDate1) {
		this.createDate1 = createDate1;
	}

	public String getCreateDate2() {
		return createDate2;
	}

	public void setCreateDate2(String createDate2) {
		this.createDate2 = createDate2;
	}

	public String getAuditTime0() {
		return auditTime0;
	}

	public void setAuditTime0(String auditTime0) {
		this.auditTime0 = auditTime0;
	}

	public String getAuditTime1() {
		return auditTime1;
	}

	public void setAuditTime1(String auditTime1) {
		this.auditTime1 = auditTime1;
	}

	public String getCarWeightType() {
		return carWeightType;
	}

	public void setCarWeightType(String carWeightType) {
		this.carWeightType = carWeightType;
	}



	public String getPeriodStartDate() {
		return periodStartDate;
	}

	public void setPeriodStartDate(String periodStartDate) {
		this.periodStartDate = periodStartDate;
	}

	public String getPeriodEndDate() {
		return periodEndDate;
	}

	public void setPeriodEndDate(String periodEndDate) {
		this.periodEndDate = periodEndDate;
	}

	public String getIssueDate() {
		return issueDate;
	}

	public void setIssueDate(String issueDate) {
		this.issueDate = issueDate;
	}

	public String getVehicleAreaCode() {
		return vehicleAreaCode;
	}

	public void setVehicleAreaCode(String vehicleAreaCode) {
		this.vehicleAreaCode = vehicleAreaCode;
	}

	public String getAllUser() {
		return allUser;
	}

	public void setAllUser(String allUser) {
		this.allUser = allUser;
	}

	public String getUseCharacter() {
		return useCharacter;
	}

	public void setUseCharacter(String useCharacter) {
		this.useCharacter = useCharacter;
	}

	public String getVin() {
		return vin;
	}

	public void setVin(String vin) {
		this.vin = vin;
	}

	public String getCarWeightTypeAlias() {
		if (org.apache.commons.lang3.StringUtils.isBlank(carWeightType)) {
			return DictUtils.getDictLabel(carWeightType, "car_weight_type", "");
		}
		return carWeightTypeAlias;
	}

	public void setCarWeightTypeAlias(String carWeightTypeAlias) {
		this.carWeightTypeAlias = carWeightTypeAlias;
	}
	public String getRoadTransportBizLicenseNo() {
		return roadTransportBizLicenseNo;
	}

	public void setRoadTransportBizLicenseNo(String roadTransportBizLicenseNo) {
		this.roadTransportBizLicenseNo = roadTransportBizLicenseNo;
	}

	public String getRoadTransportBizLicenseImg() {
		return roadTransportBizLicenseImg;
	}

	public void setRoadTransportBizLicenseImg(String roadTransportBizLicenseImg) {
		this.roadTransportBizLicenseImg = roadTransportBizLicenseImg;
	}

	public String getCarWeight() {
		return carWeight;
	}

	public void setCarWeight(String carWeight) {
		this.carWeight = carWeight;
	}

	public String getCarLength() {
		return carLength;
	}

	public void setCarLength(String carLength) {
		this.carLength = carLength;
	}

	public String getCarColor() {
		return carColor;
	}

	public void setCarColor(String carColor) {
		this.carColor = carColor;
	}

	public String getColorAlias() {
		if (org.apache.commons.lang3.StringUtils.isBlank(carColor)) {
			return DictUtils.getDictLabel(carColor, "license_plate_color", "");
		}
		return colorAlias;
	}

	public void setColorAlias(String colorAlias) {
		this.colorAlias = colorAlias;
	}

	public Date getMessageSendingDateTime() {
		return messageSendingDateTime;
	}

	public void setMessageSendingDateTime(Date messageSendingDateTime) {
		this.messageSendingDateTime = messageSendingDateTime;
	}

	public String getMessageFunctionCode() {
		return messageFunctionCode;
	}

	public void setMessageFunctionCode(String messageFunctionCode) {
		this.messageFunctionCode = messageFunctionCode;
	}

	public String getErrorMsg() {
		return errorMsg;
	}

	public void setErrorMsg(String errorMsg) {
		this.errorMsg = errorMsg;
	}

	public String getVehicleClass() {
		return vehicleClass;
	}

	public void setVehicleClass(String vehicleClass) {
		this.vehicleClass = vehicleClass;
	}

	public String getIssuingOrganizations() {
		return issuingOrganizations;
	}

	public void setIssuingOrganizations(String issuingOrganizations) {
		this.issuingOrganizations = issuingOrganizations;
	}

	/*public Date getValidPeriodFrom() {
		return validPeriodFrom;
	}

	public void setValidPeriodFrom(Date validPeriodFrom) {
		this.validPeriodFrom = validPeriodFrom;
	}

	public Date getValidPeriodTo() {
		return validPeriodTo;
	}

	public void setValidPeriodTo(Date validPeriodTo) {
		this.validPeriodTo = validPeriodTo;
	}*/

	public String getValidPeriodFrom() {
		return validPeriodFrom;
	}

	public void setValidPeriodFrom(String validPeriodFrom) {
		this.validPeriodFrom = validPeriodFrom;
	}

	public String getValidPeriodTo() {
		return validPeriodTo;
	}

	public void setValidPeriodTo(String validPeriodTo) {
		this.validPeriodTo = validPeriodTo;
	}

	public String getVehicleEnergyType() {
		return vehicleEnergyType;
	}

	public void setVehicleEnergyType(String vehicleEnergyType) {
		this.vehicleEnergyType = vehicleEnergyType;
	}

	public String getDriverStatus() {
		return driverStatus;
	}

	public void setDriverStatus(String driverStatus) {
		this.driverStatus = driverStatus;
	}

	public String getDriverStatusAlias() {
		if(StringUtils.isBlank(driverStatusAlias)){
			return DictUtils.getDictLabel(driverStatus, "driver_status", "");
		}
		return driverStatusAlias;
	}

	public void setDriverStatusAlias(String driverStatusAlias) {
		this.driverStatusAlias = driverStatusAlias;
	}

	public void setIdArray(String[] idArray) {
		this.idArray = idArray;
	}

	public String[] getIdArray() {
		return idArray;
	}

	public String getRegisterDate() {
		return registerDate;
	}

	public void setRegisterDate(String registerDate) {
		this.registerDate = registerDate;
	}
}